package createThread.cn.tedu.threaddemo.test1.Anonymous.test2;

class MyThread extends Thread{
    @Override
    public void run() {
        while (true){
            /**
             * 这里的sleep函数只能被try-catch包裹，并不能抛出InterruptedException
             */
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            System.out.println("thread 1");
        }
    }
}

/**
 * 造成二者不同的原因是：
 * 1.对于MyThread类中的run方法，是重写的方法：
 * 重写要求方法的签名要完全一致，不仅仅包括函数的名字，函数的参数列表还包括异常的抛出
 * 2.对于main方法中的sleep并没有被run方法包裹，而是属于main方法本身，并没有涉及到方法的重写
 */

public class SleepTest2 {
    public static void main(String[] args) throws InterruptedException {

        Thread thread = new MyThread();
        thread.start();
        while (true){
            /**
             * 这里的sleep不仅可以使用try-catch还可以抛出InterruptedException
             */
            Thread.sleep(1000);
            System.out.println("thread main");
        }
    }
}
